1. Field of Invention
This invention relates to parallel processing systems. Specifically, the present invention relates to systems for facilitating inter-processor communications for massively parallel processing systems.
2. Description of the Related Art
Massively parallel processors are used in a variety of applications ranging from flight simulators to supercomputer engineering applications. Programs written for these parallel processors require accurate data transfer and synchronization between processors and processing steps.
In a massively parallel environment, program execution is shared among multiple processors. Steps in an algorithm are mapped to sets of processors in the system. Each step is synchronized with other steps performed on different processors. Data required for the steps is often distributed differently for each step. Each step is performed on all processors except for those processors into which no data is mapped. Mapping descriptions that specify the data distribution and synchronization for each step in the algorithm quickly become large and unwieldy as systems and algorithms become larger. As the number of mappings increases, so does system design time, and debugging complexity. This results in expensive, time consuming development cycles for parallel processing applications.
To reduce the time and costs associated with the development of massively parallel applications, specialized message passing libraries were developed. Applications written using these libraries were often slow, error prone, difficult to debug, and not scaleable. Typically software must be must be rewritten when transporting applications between parallel processing systems of different sizes. This makes programming for massively parallel applications expensive and time consuming. Also, the relatively low level of abstraction that these libraries provide make application design difficult and tedious.
Hence, a need exists in the art for a high level system for massively parallel applications that facilitates data distribution among processors. There is a further need for a high performance system that facilitates parallel application debugging and the creation of fast, scaleable applications for massively parallel processors.